package com.xique.door.util;

//import com.jzy.oms.access.user.bean.domain.User;
//import net.coobird.thumbnailator.Thumbnails;
//import org.springframework.web.bind.annotation.PostMapping;
//
//import javax.imageio.ImageIO;
//import javax.imageio.stream.FileImageInputStream;
//import javax.imageio.stream.FileImageOutputStream;
//import java.awt.image.BufferedImage;
//import java.io.*;
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;

public class PermissionUtil {

//    @PostMapping("/test")
//    public String test(String path) {
//
//        User search = new User();
//        List<User> users = userService.selectUserList(search);
//
//        Map<String, String> map = new HashMap<>();
//        for (User user : users) {
//            String[] list = user.getUserName().split("\t");
//            if (list.length > 1) {
//                map.put(list[1], list[0]);
//            }
//        }
//
//        ArrayList<String> list = PermissionUtil.getFiles(path, map);
//
//        System.out.println(map);
//        return null;
//    }

//    public static ArrayList<String> getFiles(String path, Map<String, String> map) {
//        ArrayList<String> files = new ArrayList<String>();
//        File file = new File(path);
//        File[] tempList = file.listFiles();
//
//        for (int i = 0; i < tempList.length; i++) {
//            if (tempList[i].isFile()) {
//
//                File tempFile =new File( tempList[i].toString().trim());
//
//                String fileName = tempFile.getName();
//
//                String name = fileName.split("\\.")[0];
//
//                byte[] bytes = image2byte(tempList[i].toString());
//
//                try {
//                    bytes = commpressPicCycle(bytes, 100, 0.9);
//                } catch (Exception e) {
//
//                }
//                if (checkcountname(name)) {
//                    byte2image(bytes, tempFile.getParent() + "/new/" + map.get(name) + ".jpg");
//                }
//                byte2image(bytes, tempFile.getParent() + "/new/" + name + ".jpg");
//
//
//            }
//            if (tempList[i].isDirectory()) {
//                //  System.out.println("文件夹：" + tempList[i]);
//            }
//        }
//        return files;
//    }
//
//    public static boolean checkcountname(String countname)
//    {
//        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
//        Matcher m = p.matcher(countname);
//        if (m.find()) {
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     *
//     * @param bytes 原图片字节数组
//     * @param desFileSize 指定图片大小,单位 kb
//     * @param accuracy 精度,递归压缩的比率,建议小于0.9
//     * @return
//     */
//    public static byte[] commpressPicCycle(byte[] bytes, long desFileSize, double accuracy) throws IOException {
//        // 获取目标图片
////        File imgFile = new File(desPath);
////        long fileSize = imgFile.length();
//        long fileSize = bytes.length;
//        System.out.println("=====fileSize======== "+fileSize);
//        // 判断图片大小是否小于指定图片大小
//        if(fileSize <= desFileSize * 1024){
//            return bytes;
//        }
//        //计算宽高
//        BufferedImage bim = ImageIO.read(new ByteArrayInputStream(bytes));
//        int imgWidth = bim.getWidth();
//        System.out.println(imgWidth+"====imgWidth=====");
//        int imgHeight = bim.getHeight();
//        int desWidth = new BigDecimal(imgWidth).multiply( new BigDecimal(accuracy)).intValue();
//        System.out.println(desWidth+"====desWidth=====");
//        int desHeight = new BigDecimal(imgHeight).multiply( new BigDecimal(accuracy)).intValue();
//        ByteArrayOutputStream baos = new ByteArrayOutputStream(); //字节输出流（写入到内存）
//        Thumbnails.of(new ByteArrayInputStream(bytes)).size(desWidth, desHeight).outputQuality(accuracy).toOutputStream(baos);
//        //如果不满足要求,递归直至满足要求
//        return commpressPicCycle(baos.toByteArray(), desFileSize, accuracy);
//    }
//
//    public static void byte2image(byte[] data,String path){
//        if(data.length<3||path.equals("")) return;
//        try{
//            FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
//            imageOutput.write(data, 0, data.length);
//            imageOutput.close();
//            System.out.println("Make Picture success,Please find image in " + path);
//        } catch(Exception ex) {
//            System.out.println("Exception: " + ex);
//            ex.printStackTrace();
//        }
//    }
//
//    //图片到byte数组
//    public static byte[] image2byte(String path){
//        byte[] data = null;
//        FileImageInputStream input = null;
//        try {
//            input = new FileImageInputStream(new File(path));
//            ByteArrayOutputStream output = new ByteArrayOutputStream();
//            byte[] buf = new byte[1024];
//            int numBytesRead = 0;
//            while ((numBytesRead = input.read(buf)) != -1) {
//                output.write(buf, 0, numBytesRead);
//            }
//            data = output.toByteArray();
//            output.close();
//            input.close();
//        }
//        catch (FileNotFoundException ex1) {
//            ex1.printStackTrace();
//        }
//        catch (IOException ex1) {
//            ex1.printStackTrace();
//        }
//        return data;
//    }
}
